home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Add-Ons / MPW / MPW re2c 1.1 / main.cc < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-15  |  1.1 KB  |  67 lines  |  [TEXT/MPS ]

  1. // $Log: main.cc,v $
  2. //Revision 1.1  1994/04/08  15:27:59  peter
  3. //Initial revision
  4. //
  5.  
  6. #include <fstream.h>
  7. #include <stdlib.h>
  8. #include <fcntl.h>
  9. #include <unistd.h>
  10.  
  11. #include "globals.h"
  12. #include "parser.h"
  13. #include "dfa.h"
  14.  
  15. char *fileName;
  16. bool sFlag = false;
  17. bool bFlag = false;
  18.  
  19. #ifdef macintosh
  20. #include <QuickDraw.h>
  21. #endif
  22.  
  23. int main(unsigned argc, char *argv[]){
  24. #ifdef macintosh
  25.     InitGraf(&qd.thePort);
  26. #endif
  27.     fileName = NULL;
  28.     if(argc == 1)
  29.     goto usage;
  30.     while(--argc > 1){
  31.     char *p = *++argv;
  32.     while(*++p != '\0'){
  33.         switch(*p){
  34.         case 'e':
  35.         xlat = asc2ebc;
  36.         talx = ebc2asc;
  37.         break;
  38.         case 's':
  39.         sFlag = true;
  40.         break;
  41.         case 'b':
  42.         sFlag = true;
  43.         bFlag = true;
  44.         break;
  45.         default:
  46.         goto usage;
  47.         }
  48.     }
  49.     }
  50.     fileName = *++argv;
  51.     int fd;
  52.     if(fileName[0] == '-' && fileName[1] == '\0'){
  53.     fileName = "<stdin>";
  54.     fd = 0;
  55.     } else {
  56.     if((fd = open(fileName, O_RDONLY)) < 0){
  57.         cerr << "can't open " << fileName << "\n";
  58.         return 1;
  59.     }
  60.     }
  61.     parse(fd, cout);
  62.     return 0;
  63. usage:
  64.     cerr << "usage: re2c [-esb] name\n";
  65.     return 2;
  66. }
  67.